Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Fortran</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Fortran"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Fortran rootpage-Fortran skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Fortran</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="font-size:90%; margin-top:0; width:21em;">

<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:larger;">Fortran
</th></tr>
<tr>
<td colspan="2" class="notheme" style="text-align:center; background-color:#f8f9fa;"><span typeof="mw:File"></span>
</td></tr>


<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
</th></tr>
<tr>
<td><b><a href="Programmierparadigma" title="Programmierparadigma">Paradigmen</a>:</b>
</td>
<td><a href="Prozedurale_Programmierung" title="Prozedurale Programmierung">prozedural</a>, <a href="Imperative_Programmierung" title="Imperative Programmierung">imperativ</a>, <a href="Strukturierte_Programmierung" title="Strukturierte Programmierung">strukturiert</a>, <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientiert</a>
</td></tr>
<tr>
<td><b>Erscheinungsjahr:</b>
</td>
<td>1957
</td></tr>
<tr>
<td><b>Designer:</b>
</td>
<td><a href="John_W._Backus" title="John W. Backus">John W. Backus</a>, Harlan Herrick
</td></tr>
<tr>
<td><b>Entwickler:</b>
</td>
<td><a href="John_W._Backus" title="John W. Backus">John W. Backus</a>, <a href="IBM" title="IBM">IBM</a>
</td></tr>
<tr>
<td><b>Aktuelle&nbsp;<a href="Version_(Software)" title="Version (Software)">Version</a>:</b>
</td>
<td style="white-space:nowrap;">Fortran 2023 (ISO/IEC 1539:2023)<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> &nbsp;<small>(2023)</small>
</td></tr>


<tr>
<td><b><a href="Typisierung_(Informatik)" title="Typisierung (Informatik)">Typisierung</a>:</b>
</td>
<td><a href="Statische_Typisierung" title="Statische Typisierung">statisch</a>, <a href="Starke_Typisierung" title="Starke Typisierung">stark</a>
</td></tr>
<tr>
<td><b>Wichtige <a href="Implementierung" title="Implementierung">Implementierungen</a>:</b>
</td>
<td><a href="GNU_Fortran" title="GNU Fortran">GNU Fortran</a>, <a href="Intel_Fortran_Compiler" title="Intel Fortran Compiler">Intel</a>, <a href="LLVM" title="LLVM">Flang</a>, <a href="Open_Watcom" class="mw-redirect" title="Open Watcom">Open Watcom</a>, XL Fortran und andere
</td></tr>




<tr>
<td><b>Beeinflusst von:</b>
</td>
<td>Ratfor (Fortran 77), <a href="Matlab" title="Matlab">Matlab</a>, <a href="Ada_(Programmiersprache)" title="Ada (Programmiersprache)">Ada</a> (Fortran 90)
</td></tr>
<tr>
<td><b>Beeinflusste:</b>
</td>
<td><a href="Algol_58" class="mw-redirect" title="Algol 58">Algol 58</a>, <a href="PL/I" title="PL/I">PL/I</a>, <a href="BASIC" title="BASIC">BASIC</a>, <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a>
</td></tr>






<tr>
<td colspan="2" class="hintergrundfarbe5" style="text-align:center;"><a rel="nofollow" class="external text" href="https://fortran-lang.org/">fortran-lang.org</a>
</td></tr></tbody></table>
<p><b>Fortran</b> ist eine <a href="Prozedurale_Programmierung" title="Prozedurale Programmierung">prozedurale</a>, seit 2003 auch eine <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierte Programmiersprache</a>, die insbesondere für <a href="Numerik" class="mw-redirect" title="Numerik">numerische</a> Berechnungen in Wissenschaft, Technik und Forschung eingesetzt wird. Der Name entstand aus <i>FORmula TRANslation</i> (dt. „Formel-Übersetzung“) und wurde bis zur Version FORTRAN 77 mit Großbuchstaben geschrieben.
</p><p>Im Juni 2025 stand Fortran an zehnter Stelle der beliebten Programmiersprachen im <a href="TIOBE-Index" title="TIOBE-Index">TIOBE-Index</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>

<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Fortran gilt als die erste jemals tatsächlich realisierte <a href="H%C3%B6here_Programmiersprache" title="Höhere Programmiersprache">höhere Programmiersprache</a>. Sie geht auf einen Vorschlag zurück, den <a href="John_W._Backus" title="John W. Backus">John W. Backus</a>, Programmierer bei <a href="IBM" title="IBM">IBM</a>, 1953 seinen Vorgesetzten unterbreitete.
</p><p>Dem Entwurf der Sprache folgte die Entwicklung eines <a href="Compiler" title="Compiler">Compilers</a> durch ein <a href="IBM" title="IBM">IBM</a>-Team unter Leitung von Backus. Das Projekt begann 1954 und war ursprünglich auf sechs Monate ausgelegt. Tatsächlich konnte Harlan Herrick, der Erfinder der später heftig kritisierten <a href="Sprunganweisung" title="Sprunganweisung">Goto</a>-Anweisung, am 20. September 1954 das erste Fortran-Programm ausführen. Doch erst 1957 wurde der Compiler für marktreif befunden und mit jedem <a href="IBM_704" title="IBM 704">IBM-704</a>-System ausgeliefert.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Backus hatte darauf bestanden, den Compiler von Anfang an mit der Fähigkeit zu Optimierungen auszustatten: Er sah voraus, dass sich Fortran nur dann durchsetzen würde, wenn ähnliche Ausführungsgeschwindigkeiten wie mit bisherigen <a href="Assembler_(Informatik)" title="Assembler (Informatik)">Assembler</a>-Programmen erzielt würden. Die Erreichbarkeit dieses Ziels wurde damals allgemein stark bezweifelt.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Versionen">Versionen</h3></div>


<p>Fortran wurde mehrmals erweitert. Viele neue Sprachelemente wurden zunächst von einem einzelnen Hersteller eingeführt und später in den internationalen Standard übernommen. Als Versionen folgten aufeinander FORTRAN&nbsp;I, FORTRAN&nbsp;II, FORTRAN&nbsp;IV, FORTRAN&nbsp;66, FORTRAN&nbsp;77, Fortran&nbsp;90, Fortran&nbsp;95, Fortran&nbsp;2003, Fortran&nbsp;2008, Fortran&nbsp;2018 und Fortran&nbsp;2023. Ab FORTRAN&nbsp;66 ist Fortran durch die <a href="ISO" class="mw-redirect" title="ISO">ISO</a> standardisiert. Die Fortschreibung der Standards ist ein komplizierter Prozess, der oft wesentlich länger dauert als zunächst angestrebt: Der Nachfolger des 1978 erschienenen Standards FORTRAN&nbsp;77, der als Fortran&nbsp;8x bezeichnet wurde, war ursprünglich für das Jahr 1982 geplant, später dann für das Jahr 1985, und wurde schließlich unter der Bezeichnung Fortran&nbsp;90 erst am 11. April 1991 als neuer Standard und Nachfolger von FORTRAN&nbsp;77 angenommen.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> 2018 wurde Fortran 2018 freigegeben. Es wurden die Interoperabilität mit <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a> und Funktionen bezüglich der Parallelprogrammierung verbessert. Weitere Neuerungen betreffen die <a href="Gleitkommazahl" title="Gleitkommazahl">Gleitkommaarithmetik</a> auf <a href="Mikroprozessor" title="Mikroprozessor">Mikroprozessoren</a> und die Ein- und Ausgabe von <a href="Hexadezimalsystem" title="Hexadezimalsystem">Hexadezimalzahlen</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Sprachelemente">Sprachelemente</h3></div>
<p>Im Laufe dieser Erweiterungen wurden zahlreiche Sprachelemente aus später entstandenen Programmiersprachen übernommen. Frühe FORTRAN-Versionen bis Version 4 hatten als Flusskontrollstruktur nur zwei verschiedene <a href="Sprunganweisung" title="Sprunganweisung">Goto</a>-Anweisungen und den Aufruf von Unterprogrammen. <a href="Strukturierte_Programmiersprache" class="mw-redirect" title="Strukturierte Programmiersprache">Strukturierte</a> Programmierung mit Schleifen wurde mit FORTRAN&nbsp;77 möglich. Mit Fortran&nbsp;90 wurde neben dem aus der <a href="Lochkarte" title="Lochkarte">Lochkartenzeit</a> stammenden festen Zeilenformat ein von späteren Programmiersprachen verwendetes freieres Format erlaubt. Ab Fortran&nbsp;90 werden Elemente eingeführt, die auch beispielsweise in <a href="Ada_(Programmiersprache)" title="Ada (Programmiersprache)">Ada</a> vorhanden sind, beispielsweise optionale Parameter und die Möglichkeit, Prozedurparameter nicht nur über die Position in der Parameterliste zu identifizieren, sondern auch über ihren Namen. Seit Fortran&nbsp;2003 werden auch <a href="Polymorphie_(Programmierung)" title="Polymorphie (Programmierung)">polymorphe Datentypen</a> und <a href="Vererbung_(Programmierung)" title="Vererbung (Programmierung)">Vererbung</a> unterstützt, so dass man <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientiert programmieren</a> kann. Seit Fortran&nbsp;2008 ist mit <a href="Co-array_Fortran" title="Co-array Fortran">Coarray Fortran</a> eine <a href="Parallele_Programmierung" title="Parallele Programmierung">Parallelisierung</a> in die Sprache eingebaut, die dem <a href="PGAS" class="mw-redirect" title="PGAS">PGAS</a>-Schema folgt.
</p><p>Beispiel:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">subroutine </span><span class="n">test</span><span class="p">(</span><span class="n">argument1</span><span class="p">,</span><span class="w"> </span><span class="n">argument2</span><span class="p">,</span><span class="w"> </span><span class="n">argument3</span><span class="p">)</span>
<span class="w"> </span><span class="kt">real</span><span class="p">,</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">argument1</span>
<span class="w"> </span><span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">argument2</span>
<span class="w"> </span><span class="kt">integer</span><span class="p">,</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">),</span><span class="w"> </span><span class="k">optional</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">argument3</span>
<span class="w"> </span><span class="c">! Hier etwas Sinnvolles ...</span>
<span class="k">end subroutine </span><span class="n">test</span>
</pre></div>
<p>Mögliche Aufrufe sind dann z.&nbsp;B.:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">call </span><span class="n">test</span><span class="p">(</span><span class="mf">1.0</span><span class="p">,</span><span class="w"> </span><span class="s1">'Tach'</span><span class="p">)</span>
<span class="k">call </span><span class="n">test</span><span class="p">(</span><span class="n">argument1</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span><span class="w"> </span><span class="n">argument2</span><span class="o">=</span><span class="s1">'Tach auch'</span><span class="p">)</span>
<span class="k">call </span><span class="n">test</span><span class="p">(</span><span class="n">argument2</span><span class="o">=</span><span class="s1">'Tach Auch'</span><span class="p">,</span><span class="w"> </span><span class="n">argument1</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span>
<span class="k">call </span><span class="n">test</span><span class="p">(</span><span class="n">argument3</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="n">argument1</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span><span class="w"> </span><span class="n">argument2</span><span class="o">=</span><span class="s1">'Tach auch'</span><span class="p">)</span>
</pre></div>
<p>Während beim ersten Aufruf die Parameterassoziation über die Reihenfolge der Parameter erfolgt, so werden bei den anderen Beispielen die Parameter mittels der Namen identifiziert. Bei letzteren spielt die Reihenfolge dann keine Rolle mehr.
</p>
<div class="mw-heading mw-heading3"><h3 id="Varianten">Varianten</h3></div>
<p>Einige von Fortran abgeleitete Programmiersprachen sind Ratfor, F und HPF (High Performance Fortran).
</p>
<div class="mw-heading mw-heading2"><h2 id="Eigenschaften">Eigenschaften</h2></div>
<p>Fortran war und ist für numerische Berechnungen vorgesehen und optimiert. Von Anfang an hatte Fortran den Potenz-Operator <code>**</code> –&nbsp;der in vielen anderen Hochsprachen nicht vorhanden ist&nbsp;– und einen Datentyp für <a href="Komplexe_Zahl" title="Komplexe Zahl">komplexe Zahlen</a>. Mit Fortran&nbsp;90 wurden <a href="Vektor" title="Vektor">Vektor</a>- und <a href="Matrix_(Mathematik)" title="Matrix (Mathematik)">Matrix</a>-Operationen standardisiert. Außerdem ist Fortran <a href="Case_sensitivity" title="Case sensitivity">case insensitive</a>, d.&nbsp;h. im Gegensatz zu Sprachen wie <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a> oder <a href="C%2B%2B" title="C++">C++</a> wird vom Compiler nicht zwischen Groß- und Kleinschreibung unterschieden. Es liegt im Stil des Programmierers, ob er groß oder klein schreibt, generell sieht man aber immer öfter (z.&nbsp;B. in Lehrbüchern) den Trend, alles kleinzuschreiben.
</p><p>Insbesondere für wissenschaftliche und numerische Berechnungen gibt es in Fortran umfangreiche <a href="Programmbibliothek" title="Programmbibliothek">Bibliotheken</a>, die immer noch weit verbreitet sind, auch wenn eine zunehmende Menge an Funktionalität inzwischen nach C und C++ portiert wurde.
</p>
<div class="mw-heading mw-heading3"><h3 id="Arrays_in_Zuweisungen_und_Ausdrücken_und_intrinsische_Array-Funktionen"><span id="Arrays_in_Zuweisungen_und_Ausdr.C3.BCcken_und_intrinsische_Array-Funktionen"></span>Arrays in Zuweisungen und Ausdrücken und intrinsische Array-Funktionen</h3></div>
<p>Arrays mit gleicher Zahl von Elementen und gleichem Rang können in Ausdrücken und Zuweisungen verwendet werden, auch gemischt mit Skalaren.
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kt">real</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="n">b</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">12</span><span class="p">)</span><span class="w"> </span><span class="c">! Deklariere zwei Arrays der Länge 10</span>
<span class="w"> </span><span class="k">read</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="c">! Lies a ein</span>
<span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">2.</span><span class="o">*</span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">3.</span><span class="o">/</span><span class="n">a</span><span class="w"> </span><span class="c">! Elementweise Zuweisung</span>
<span class="w"> </span><span class="k">write</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="c">! Ausgabe von b</span>
</pre></div>
<p>Verschiedene Array-Funktionen werden durch die Sprachnorm vordefiniert. So gibt beispielsweise die Funktion <code>MAXVAL</code> den maximalen Wert eines Arrays zurück und <code>MAXLOC</code> den Index des maximalen Wertes. Die intrinsischen Funktionen <code>DOT_PRODUCT</code> und <code>MATMUL</code> liefern das <a href="Skalarprodukt" title="Skalarprodukt">Skalarprodukt</a> und die <a href="Matrixmultiplikation" class="mw-redirect" title="Matrixmultiplikation">Matrixmultiplikation</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Implizite_Variablendeklaration">Implizite Variablendeklaration</h3></div>
<p>In Anlehnung an mathematischen Notationsgebrauch sind Variablen in Fortran ohne Deklaration über ihren Anfangsbuchstaben deklariert: <a href="Bezeichner" title="Bezeichner">Bezeichner</a>, die mit einem der Buchstaben i, j, k, l, m, n beginnen, stehen für eine Integer-Variable oder einen Integer-Funktionswert, alle übrigen Bezeichner stehen für Gleitkommazahlen. Diese implizite Typenvereinbarung von Variablen kann durch die Deklaration einzelner Variablen überschrieben werden, sie kann durch eine Zeile wie
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="c">! Alle nichtdeklarierten Bezeichner, deren erster Buchstabe c oder z ist,</span>
<span class="c">! bezeichnen komplexe Zahlen.</span>
<span class="k">implicit </span><span class="kt">complex</span><span class="p">(</span><span class="n">c</span><span class="p">,</span><span class="w"> </span><span class="n">z</span><span class="p">)</span>
</pre></div>
<p>verändert werden, und die implizite Vereinbarung kann durch den Befehl
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">implicit none</span>
</pre></div>
<p>ganz aufgehoben werden, was für alle neuen Programme empfohlen wird. In diesem Fall löst die Verwendung eines nichtdeklarierten Bezeichners einen Fehler während der Übersetzung aus. Dadurch vereinfacht sich die Fehlersuche erheblich.
</p>
<div class="mw-heading mw-heading3"><h3 id="Übergabe_von_Argumenten"><span id=".C3.9Cbergabe_von_Argumenten"></span>Übergabe von Argumenten</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Bis_FORTRAN_77">Bis FORTRAN 77</h4></div>
<p>Bis einschließlich FORTRAN 77 konnten <a href="Unterprogramm" title="Unterprogramm">Unterprogramme</a> vor ihrer Verwendung nicht deklariert werden. Es konnte durch eine Deklaration nur der Typ des Rückgabewerts einer Funktion festgelegt werden. Der Compiler überprüfte normalerweise nicht, ob ein Unterprogrammaufruf mit typrichtigen Argumenten erfolgt. Die Übergabe von Argumenten an Unterprogramme (<code>subroutine</code> oder <code>function</code>) erfolgt üblicherweise per Adresse. Eine automatische Typumwandlung findet nicht statt.
</p><p>Die meisten Fortran-Systeme führen auch keine Typüberprüfung zur Laufzeit durch. Das ist bei der Verwendung dieses veralteten Programmierstils eine häufige Fehlerquelle.
</p><p>Programmbeispiel 1:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">call </span><span class="n">drucke_zahl</span><span class="p">(</span><span class="mf">3.14</span><span class="p">)</span>
<span class="c">! ...</span>
<span class="k">subroutine </span><span class="n">drucke_zahl</span><span class="p">(</span><span class="n">meine_zahl</span><span class="p">)</span>
</pre></div>
<p>Im Unterprogramm <code>drucke_zahl()</code> ist <code>meine_zahl</code>, weil mit <code>m</code> beginnend, implizit als <a href="Integer_(Datentyp)" title="Integer (Datentyp)">Integer</a> deklariert. Zur Laufzeit erfolgt ein Aufruf mit dem <code>real</code>-Argument <code>3.14</code>. Dann wird die Integer-Variable <code>meine_zahl</code> mit den Bits der Gleitkommadarstellung von <code>3.14</code> aufgefüllt – was auf beliebig abwegige numerische Ergebnisse führt.
</p><p>Viele Fortran-Compiler übergeben Parameter <a href="Referenzparameter" title="Referenzparameter">per Referenz</a>. Das führt teilweise zu nicht beabsichtigten Ergebnissen, beispielsweise folgendes Programmbeispiel&nbsp;2:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">program </span><span class="n">bsp_bar</span>
<span class="w"> </span><span class="k">call </span><span class="n">bar</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
<span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span>
<span class="k">end program </span><span class="n">bsp_bar</span>

<span class="k">subroutine </span><span class="n">bar</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">42</span>
<span class="k">end subroutine </span><span class="n">bar</span>
</pre></div>
<p>Dieses würde bei manchen Compilern die Zahl 42 ausgeben. Das Programm ist allerdings so nicht korrekt.
</p><p>Programmierwerkzeuge wie „ftnchek“<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> ermöglichen eine separate Prüfung der Übereinstimmung von Argumentlisten und würden in diesen Fällen warnen. Aktuelle Compiler führen ebenfalls solche Überprüfungen durch oder erzeugen einen Laufzeitfehler bei der Zuweisung eines Wertes an eine Konstante; <a href="TR_440#Werkzeuge_zur_Programmentwicklung" title="TR 440">diese beiden Prüfungen</a> waren schon seit 1970 am Rechner <a href="TR_440" title="TR 440">TR 440</a> verfügbar.
</p>
<div class="mw-heading mw-heading4"><h4 id="Modernes_Fortran">Modernes Fortran</h4></div>
<p>In Fortran 90 und nachfolgenden Versionen besteht die Möglichkeit, die Parametertypen der Unterprogramme anhand von Schnittstellen (<code>interface</code>) und Modulen (<code>module</code>) zu definieren. Der Compiler kann somit überprüfen, ob der übergebene Parametertyp und der erwartete Typ übereinstimmen. Diese Bekanntgabe ist allerdings nicht zwingend, wie es in anderen Programmiersprachen – beispielsweise Ada – der Fall ist. Die von Fortran 95 abgeleitete Programmiersprache F erzwingt dieses; in F sind nur Aufrufe von Unterprogrammen erlaubt, deren Parameterliste beispielsweise durch <code>use</code>-Anweisungen bekannt gemacht sind. In einem Unterprogramm kann auch festgelegt werden, ob ein Parameter Eingabeparameter (<code>intent(in)</code>), Ausgabeparameter (<code>intent(out)</code>) oder beides (<code>intent(in out)</code>) ist. In Fortran 90 deklariert man das Unterprogramm bar folgendermaßen:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">subroutine </span><span class="n">bar</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="w"> </span><span class="kt">integer</span><span class="p">,</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span>
<span class="w"> </span><span class="c">! ...</span>
<span class="k">end subroutine </span><span class="n">bar</span>
</pre></div>
<p>Falls das Unterprogramm versuchen sollte, den Wert des Aktualparameter&nbsp;<code>i</code> zu verändern, würde der Compiler einen Fehler anzeigen.
</p><p>Weiterhin kann Fortran 90 Arrays einschließlich ihrer Größen übergeben, diese können
dann im Unterprogramm verwendet werden:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">subroutine </span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="w"> </span><span class="kt">integer</span><span class="p">,</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">),</span><span class="w"> </span><span class="k">dimension</span><span class="p">(:)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
<span class="w"> </span><span class="c">!</span>
<span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="n">size</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="c">! Gib die Größe von x aus</span>
<span class="k">end subroutine </span><span class="n">foo</span>
</pre></div>
<p>Es können dann auch Teile von Arrays übergeben werden, z.&nbsp;B. mit
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">program </span><span class="n">main</span>
<span class="w"> </span><span class="kt">integer</span><span class="p">,</span><span class="w"> </span><span class="k">dimension</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
<span class="w"> </span><span class="k">call </span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="mi">10</span><span class="p">:</span><span class="mi">2</span><span class="p">)</span>
<span class="k">end program </span><span class="n">main</span>
</pre></div>
<p>Dies übergibt einen Array mit den Elementen <code>x(1), x(3), x(5), x(7), x(9)</code> an <code>foo</code>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Dynamische_Speicherallokation">Dynamische Speicherallokation</h3></div>
<p>Unter dynamischer Speicherallokation versteht man die Möglichkeit, Speicher (insbesondere für Felder wie z.&nbsp;B. für Matrizen) erst zur Laufzeit des Programms anzufordern, das heißt, dass die Größe von Arrays nicht bereits zum Zeitpunkt des Übersetzens des Programms festgelegt zu sein braucht. Ein einfaches Beispiel:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">real</span><span class="p">,</span><span class="w"> </span><span class="k">allocatable</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span><span class="p">(:,:)</span>

<span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'Zeilen- und Spaltenzahl eingeben'</span>
<span class="k">read</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="n">n</span>
<span class="k">allocate</span><span class="p">(</span><span class="n">a</span><span class="p">(</span><span class="n">m</span><span class="p">,</span><span class="w"> </span><span class="n">n</span><span class="p">))</span>
<span class="c">! ...</span>
<span class="k">deallocate</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
</pre></div>
<p>Bis FORTRAN&nbsp;77 ist eine dynamische Speicherallokation nicht oder nur über nicht standardisierte Erweiterungen der Compilerhersteller möglich. Ab Fortran&nbsp;90 ist die dynamische Speicherverwaltung im Sprachstandard enthalten.
</p><p>Ein anderes Beispiel für dynamische Speicherreservierung: Anlegen und Bearbeiten einer verketteten Liste:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type </span><span class="n">element_t</span>
<span class="w"> </span><span class="k">type</span><span class="p">(</span><span class="n">element_t</span><span class="p">),</span><span class="w"> </span><span class="k">pointer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">naechstes</span>
<span class="w"> </span><span class="kt">real</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">datum</span>
<span class="k">end type </span><span class="n">element_t</span>

<span class="k">type</span><span class="p">(</span><span class="n">element_t</span><span class="p">),</span><span class="w"> </span><span class="k">pointer</span><span class="p">,</span><span class="w"> </span><span class="k">save</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">liste</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="nb">null</span><span class="p">()</span>
<span class="k">type</span><span class="p">(</span><span class="n">element_t</span><span class="p">),</span><span class="w"> </span><span class="k">pointer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">element</span>

<span class="c">! Anlegen eines Elements und Eintragen am Anfang der Liste</span>
<span class="k">allocate</span><span class="p">(</span><span class="n">element</span><span class="p">)</span>

<span class="n">element</span><span class="p">%</span><span class="n">datum</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">471</span><span class="mf">1.0</span>
<span class="n">element</span><span class="p">%</span><span class="n">naechstes</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">liste</span>
<span class="n">liste</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">element</span>

<span class="c">! Durchlaufen der Liste:</span>
<span class="n">element</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">liste</span>

<span class="k">do while</span><span class="w"> </span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">element</span><span class="p">))</span>
<span class="w"> </span><span class="k">call </span><span class="n">bearbeiten</span><span class="p">(</span><span class="n">element</span><span class="p">%</span><span class="n">datum</span><span class="p">)</span>
<span class="w"> </span><span class="n">element</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">element</span><span class="p">%</span><span class="n">naechstes</span>
<span class="k">end do</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Coarrays">Coarrays</h3></div>
<p>Fortran unterstützt seit der Sprachversion Fortran 2008 Coarrays. Ein Programm läuft in unterschiedlichen Instanzen, die als „images“ bezeichnet werden. Jede Instanz kann auf lokale Variablen zugreifen. Zugriff auf Variablen auf anderen Images wird über Coarrays realisiert, die wie ein normaler Array mit einem bestimmten Cosubscript angesprochen werden. Bevor der Wert einer Variable verwendet werden kann, der von einem anderen Image geschrieben wurde, muss synchronisiert werden, dies geschieht am einfachsten durch einen <code>SYNC ALL</code>-Befehl. Ein einfaches Beispiel:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="c">! In diesem Programm schreibt jedes Image eine Nachricht in das</span>
<span class="c">! Element eines anderen Images.</span>
<span class="k">program </span><span class="n">main</span>
<span class="w"> </span><span class="k">implicit none</span>
<span class="k"> </span><span class="kt">character</span><span class="w"> </span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="mi">30</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">greetings</span><span class="p">[</span><span class="o">*</span><span class="p">]</span>
<span class="w"> </span><span class="kt">integer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">me</span><span class="p">,</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="n">you</span>
<span class="w"> </span><span class="n">me</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">this_image</span><span class="p">()</span>
<span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">num_images</span><span class="p">()</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">me</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="k">then</span>
<span class="k"> </span><span class="n">you</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">me</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">else</span>
<span class="k"> </span><span class="n">you</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">end if</span>
<span class="k"> write</span><span class="w"> </span><span class="p">(</span><span class="n">unit</span><span class="o">=</span><span class="n">greetings</span><span class="p">[</span><span class="n">you</span><span class="p">],</span><span class="n">fmt</span><span class="o">=</span><span class="s1">'(A,I0,A,I0)'</span><span class="p">)</span><span class="w"> </span><span class="p">&amp;</span>
<span class="w"> </span><span class="s2">"Gruesse von "</span><span class="p">,</span><span class="w"> </span><span class="n">me</span><span class="p">,</span><span class="w"> </span><span class="s2">" an "</span><span class="p">,</span><span class="w"> </span><span class="n">you</span>
<span class="w"> </span><span class="k">sync all</span>
<span class="k"> write</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span><span class="w"> </span><span class="nb">trim</span><span class="p">(</span><span class="n">greetings</span><span class="p">)</span>
<span class="k">end program </span><span class="n">main</span>
</pre></div>
<p>was dann mit vier Images beispielsweise die Ausgabe
</p>
<pre> Gruesse von 3 an 4
Gruesse von 1 an 2
Gruesse von 2 an 3
Gruesse von 4 an 1
</pre>
<p>erzeugt.
</p>
<div class="mw-heading mw-heading3"><h3 id="Objektorientierung">Objektorientierung</h3></div>
<p><a href="Vererbung_(Programmierung)" title="Vererbung (Programmierung)">Vererbung</a> wird in Fortran durch Erweiterung von Typen realisiert. In Fortran kann ein Pointer oder ein Argument eines Unterprogrammes ein <code>CLASS</code>-Argument sein. Falls erforderlich, kann der Typ durch <code>SELECT TYPE</code> unterschieden werden.
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">type </span><span class="n">t1</span>
<span class="w"> </span><span class="kt">integer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i1</span>
<span class="w"> </span><span class="k">end type </span><span class="n">t1</span>
<span class="w"> </span><span class="k">type</span><span class="p">,</span><span class="w"> </span><span class="k">extends</span><span class="w"> </span><span class="p">(</span><span class="n">t1</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">t2</span>
<span class="w"> </span><span class="kt">real</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r1</span>
<span class="w"> </span><span class="k">end type </span><span class="n">t2</span>
<span class="c">!...</span>
<span class="w"> </span><span class="k">subroutine </span><span class="n">foo</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
<span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="p">(</span><span class="n">t1</span><span class="p">),</span><span class="w"> </span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span>
<span class="w"> </span><span class="k">select type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
<span class="w"> </span><span class="k">type is</span><span class="w"> </span><span class="p">(</span><span class="n">t1</span><span class="p">)</span>
<span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="s2">"Type ist t1, Wert ist"</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">%</span><span class="n">i1</span>
<span class="w"> </span><span class="k">type is</span><span class="w"> </span><span class="p">(</span><span class="n">t2</span><span class="p">)</span>
<span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="s2">"Type ist t2, Werte sind"</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">%</span><span class="n">i1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">%</span><span class="n">r1</span>
<span class="w"> </span><span class="k">class </span><span class="n">default</span>
<span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="s2">"Das ist ein anderer Wert."</span>
<span class="w"> </span><span class="k">end select</span>
</pre></div>
<p><a href="Methode_(Programmierung)" title="Methode (Programmierung)">Methoden</a> werden in Fortran als „Type-bound procedures“ bezeichnet:
</p>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">type </span><span class="n">foo</span>
<span class="w"> </span><span class="kt">integer</span><span class="p">,</span><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span>
<span class="w"> </span><span class="k">contains</span>
<span class="k"> procedure</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">add</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">int_add</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">subtract</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">int_subtract</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">get_val</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">int_read</span>
<span class="w"> </span><span class="k">end type </span><span class="n">foo</span>
</pre></div>
<p>Ein Benutzer, der eine Variable <code>x</code> vom Typ oder der Klasse <code>foo</code> verwendet, kann dann die Routinen <code>foo%add</code>, <code>foo%subtract</code> und <code>foo%get_val</code> aufrufen, der direkte Zugriff auf <code>foo%i</code> ist durch das Schlüsselwort <code>private</code> nicht möglich.
</p>
<div class="mw-heading mw-heading2"><h2 id="Compiler">Compiler</h2></div>

<p>Fortran-<a href="Compiler" title="Compiler">Compiler</a> gibt es für praktisch alle Computer, von Arbeitsplatzrechnern bis zu <a href="Supercomputer" title="Supercomputer">Supercomputern</a>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Proprietäre_Software"><span id="Propriet.C3.A4re_Software"></span>Proprietäre Software</h3></div>
<p>Kommerzielle Anbieter von Fortran-Compilern sind entweder Computerhersteller wie z.&nbsp;B. IBM, SUN, HP, <a href="Intel_Fortran_Compiler" title="Intel Fortran Compiler">Intel</a> oder spezialisierte Softwarehersteller wie Absoft, NAG, Lahey, Salford. Reine FORTRAN-77-Compiler werden heute zumeist nicht mehr hergestellt, da FORTRAN 77 fast vollständig im Sprachstandard Fortran 95 enthalten ist (nur DO-Schleifen mit REAL-Iterationsvariablen und Hollerith-Edit-Deskriptoren sind in Fortran 95 und später nicht mehr vorhanden).
</p><p>Einige der oben genannten Compiler sind für Privatanwender bzw. nichtkommerzielle Nutzung unentgeltlich, zum Beispiel die Linux-Variante des <a href="Intel_Fortran_Compiler" title="Intel Fortran Compiler">Intel-Fortran-Compilers</a>, Sun Studio Express (mit Fortran-, C- und C++-Compilern für Linux und Solaris), für Microsoft Windows der Compiler von Salford und DEC Fortran für <a href="OpenVMS" title="OpenVMS">OpenVMS</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Freie_Software">Freie Software</h3></div>
<p>Ab Version 4.0 enthält die praktisch für alle Plattformen verfügbare <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC) einen <a href="Compiler" title="Compiler">Compiler</a> für Fortran 95 (<a href="GNU_Fortran" title="GNU Fortran">GNU Fortran</a>). Ältere Versionen von GCC enthalten noch den FORTRAN-77-Compiler g77. An dem freien Compiler G95 wurden die Arbeiten 2012 eingestellt, er ist allerdings weiterhin verfügbar.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Aus diesem ging 2003 <a href="Gfortran" class="mw-redirect" title="Gfortran">gfortran</a> als neuer GNU-Fortran-Compiler hervor.
</p><p>Ab Version 4.4 „Luna“ existiert eine integrierte Entwicklungsumgebung für <a href="Eclipse_(IDE)" title="Eclipse (IDE)">Eclipse</a>.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>Auch die OpenWatcom-Entwicklersuite verfügt über einen FORTRAN-77-Compiler.
</p>
<div class="mw-heading mw-heading3"><h3 id="Transcompiler">Transcompiler</h3></div>
<p>Es gibt <a href="Compiler#Sonderformen" title="Compiler">Transcompiler</a>, wie beispielsweise f2c, zur automatischen Übersetzung von Fortran-77 in <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a>. Der daraus erzeugte Quelltext ist allerdings kaum für den Menschen lesbar. Auch der NAG-Compiler verwendet als Zwischensprache&nbsp;C; allerdings ist die nötige Laufzeitbibliothek nicht im Quelltext erhältlich.
</p>
<div class="mw-heading mw-heading3"><h3 id="Sprachunterstützung"><span id="Sprachunterst.C3.BCtzung"></span>Sprachunterstützung</h3></div>
<p>Die meisten aktuellen Compiler unterstützen den 2008- oder 2018-Standard.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Verfügbare_Software_und_Programmbeispiele"><span id="Verf.C3.BCgbare_Software_und_Programmbeispiele"></span>Verfügbare Software und Programmbeispiele</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Mathematische_Bibliotheken">Mathematische Bibliotheken</h3></div>
<p>Die Referenz-Implementierung der <a href="Basic_Linear_Algebra_Subprograms" title="Basic Linear Algebra Subprograms">BLAS-Bibliothek</a>, die Grundoperationen der <a href="Lineare_Algebra" title="Lineare Algebra">linearen Algebra</a> zur Verfügung stellt, ist in Fortran geschrieben und verwendet die <a href="Programmierschnittstelle" title="Programmierschnittstelle">API</a> von Fortran<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>, ebenso wie die auf BLAS aufsetzende <a href="LAPACK" title="LAPACK">LAPACK</a>-Bibliothek.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p><p>Zahlreiche der bei <a href="Netlib" title="Netlib">Netlib</a> verfügbaren Algorithmen sind in Fortran geschrieben, typischerweise in älteren Dialekten.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmbeispiele">Programmbeispiele</h3></div>
<p>Zahlreiche Programmbeispiele finden sich bei den Webseiten „Programming Idioms“<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> und bei <a href="Rosetta_Code" title="Rosetta Code">Rosetta Code</a>.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Literatur_zur_Geschichte_von_Fortran">Literatur zur Geschichte von Fortran</h2></div>
<ul><li><i>Annals of History of Computing.</i> Vol. 6, No. 1, 1984, <span class="-print"><a href="Internationale_Standardnummer_f%C3%BCr_fortlaufende_Sammelwerke" title="Internationale Standardnummer für fortlaufende Sammelwerke">ISSN</a>&nbsp;<span style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://zdb-katalog.de/list.xhtml?t=iss%3D%220164-1239%22&amp;key=cql">0164-1239</a></span></span>.
<ul><li>John C. McPherson: <i>Early Computers and Computing Institutions.</i> S. 15–16. <a href="https://doi.org/10.1109/MAHC.1984.10005" class="extiw external" title="doi:10.1109/MAHC.1984.10005">doi:10.1109/MAHC.1984.10005</a></li>
<li>Herbert S. Bright: <i>Early Fortran User Experience.</i> S. 28–30. <a href="https://doi.org/10.1109/MAHC.1984.10011" class="extiw external" title="doi:10.1109/MAHC.1984.10011">doi:10.1109/MAHC.1984.10011</a></li>
<li>Daniel N. Leeson: <i>IBM Fortran Exhibit and Film.</i> S. 41–48. <a href="https://doi.org/10.1109/MAHC.1984.10000" class="extiw external" title="doi:10.1109/MAHC.1984.10000">doi:10.1109/MAHC.1984.10000</a></li>
<li>J. A. N. Lee: <i>An Annotated Bibliography of Fortran.</i> S. 49–58. <a href="https://doi.org/10.1109/MAHC.1984.10003" class="extiw external" title="doi:10.1109/MAHC.1984.10003">doi:10.1109/MAHC.1984.10003</a></li></ul></li>
<li>Michael Metcalf: <i>The Seven Ages of Fortran</i>. In: <i>Journal of Computer Science &amp; Technology</i> (JCS&amp;T), Band 11, Nr.&nbsp;1, S.&nbsp;1–8, 2011 (<style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */


.mw-parser-output .webarchiv-memento a{color:inherit}


/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20211024020158/https://journal.info.unlp.edu.ar/JCST/article/view/681/210">online</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> vom 24. Oktober 2021 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>)).</li>
<li><a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/FORTRAN/">History of FORTRAN and FORTRAN II.</a> Sammlung präsentiert vom <a href="Computer_History_Museum" title="Computer History Museum">Computer History Museum</a> (englisch).</li>
<li>Saul Rosen (Hrsg.): <i>Programming Systems and Languages.</i> McGraw-Hill, New York NY u.&nbsp;a. 1967.</li>
<li>Richard L. Wexelblat (Hrsg.): <i>History of Programming Languages.</i> Academic Press, New York NY u.&nbsp;a. 1981, ISBN 0-12-745040-8, S. 25–74.</li>
<li><i>FORTRAN-Fachwörterbuch.</i> In: <i>Blätter der Deutschen Gesellschaft für Versicherungsmathematik.</i> Band 8, H. 3, Oktober 1967, S. 499–520.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur_zu_Fortran">Literatur zu Fortran</h2></div>
<ul><li>Stephen J. Chapman: <i>Fortran 90/95 for Scientists and Engineers.</i> 2. Auflage. McGraw Hill Higher Education, Boston MA u.&nbsp;a. 2004, ISBN 0-07-123233-8.</li>
<li>Thomas Kühme, Peter Witschital: <i>Die FORTRAN-Fibel. Strukturierte Programmierung mit FORTRAN 77. Lehr- und Arbeitsbuch für Anfänger.</i> 3., durchgesehene Auflage. Oldenbourg, München u.&nbsp;a. 1991, ISBN 3-486-22016-0.</li>
<li>Michael Metcalf, John Reid, Malcolm Cohen, Reinhold Bader: <i>Modern Fortran Explained, Incorporating Fortran 2023</i>. Oxford University Press, Oxford u.&nbsp;a. 2023, ISBN 978-0-19-887657-1.</li>
<li><a href="William_H._Press" title="William H. Press">William H. Press</a>, <a href="Saul_A._Teukolsky" class="mw-redirect" title="Saul A. Teukolsky">Saul A. Teukolsky</a>, William T. Vetterling, Brian P. Flannery: <i>Numerical recipes in Fortran 77. The Art of Scientific Computing</i> (=&nbsp;<i>Numerical recipes in Fortran.</i> Vol. 1). 2. Auflage. Cambridge University Press, Cambridge u.&nbsp;a. 1992, ISBN 0-521-43064-X (2., korr. Auflage. ebenda 2003).</li>
<li>William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery: <i>Numerical Recipes in Fortran 90. The Art of Parallel Scientific Computing</i> (=&nbsp;<i>Numerical recipes in Fortran.</i> Vol. 2). 2. Auflage. Cambridge University Press, Cambridge u.&nbsp;a. 1996, ISBN 0-521-57439-0 (2., korr. Auflage. ebenda 1999).</li>
<li>Günter Schmitt: <i>Fortran-90-Kurs technisch orientiert. Einführung in die Programmierung mit Fortran 90.</i> Oldenbourg, München u.&nbsp;a. 1996, ISBN 3-486-23896-5.</li>
<li>Dragos Chirila, Gerrit Lohmann: <i>Introduction to Modern Fortran for Earth System Sciences</i>. Springer, Berlin/Heidelberg 2015, ISBN 978-3-642-37008-3.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><div class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wikibooks"></span></span></div><b><a href="https://de.wikibooks.org/wiki/Fortran" class="extiw external" title="b:Fortran">Wikibooks: Fortran</a></b>&nbsp;– Lern- und Lehrmaterialien</div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><span class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wiktionary"></span></span></span><b><a href="https://de.wiktionary.org/wiki/Fortran" class="extiw external" title="wikt:Fortran">Wiktionary: Fortran</a></b>&nbsp;– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen</div>
<ul><li><a rel="nofollow" class="external text" href="http://fortranwiki.org/">Fortran Wiki</a> Kompendium zu allen Fortran-Versionen (englisch)</li>
<li><a rel="nofollow" class="external text" href="https://www.fortran.de/">Fortran.de</a> Links und Informationen</li>
<li><a rel="nofollow" class="external text" href="https://gcc.gnu.org/wiki/GFortranStandards">Fortran Standards</a> Linksammlung auf der GNU-Fortran-Seite</li>
<li><a rel="nofollow" class="external text" href="https://www.fortran.com/">Fortran Store</a> Umfangreiche Informationen inkl. Historischem und Standards (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html">Einführung in Fortran 90/95</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/tkoenig1/coarray-tutorial/blob/main/tutorial.md">Eine kurze Einführung in Coarrays (englisch)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite">wg5-fortran.org: <a rel="nofollow" class="external text" href="https://wg5-fortran.org/f2023.html"><i>Fortran 2023.</i></a><span class="Abrufdatum"> Abgerufen am 27.&nbsp;Mai 2024</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Fortran+2023&amp;rft.description=Fortran+2023&amp;rft.identifier=https%3A%2F%2Fwg5-fortran.org%2Ff2023.html&amp;rft.creator=wg5-fortran.org&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><span class="cite">TIOBE Software BV: <a rel="nofollow" class="external text" href="https://www.tiobe.com/tiobe-index///"><i>TIOBE Index for June 2025.</i></a> In: <i>TIOBE.com.</i> TIOBE, Juni 2025,<span class="Abrufdatum"> abgerufen am 9.&nbsp;Juni 2025</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=TIOBE+Index+for+June+2025&amp;rft.description=TIOBE+Index+for+June+2025&amp;rft.identifier=https%3A%2F%2Fwww.tiobe.com%2Ftiobe-index%2F%2F%2F&amp;rft.creator=TIOBE+Software+BV&amp;rft.publisher=TIOBE&amp;rft.date=2025-06">&nbsp;</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.heise.de/newsticker/meldung/Vor-60-Jahren-IBM-veroeffentlicht-erste-Sprachspezifikation-fuer-Fortran-3351318.html"><i>Vor 60 Jahren: IBM veröffentlicht erste Sprachspezifikation für Fortran.</i></a> In: <i>Heise online.</i> 17. Oktober 2016.</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">Mark Jones Lorenzo: <cite style="font-style:italic">Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation)</cite>. 2019, ISBN 978-1-08-239594-9.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Fortran&amp;rft.au=Mark+Jones+Lorenzo&amp;rft.btitle=Abstracting+Away+the+Machine%3A+The+History+of+the+FORTRAN+Programming+Language+%28FORmula+TRANslation%29&amp;rft.date=2019&amp;rft.genre=book&amp;rft.isbn=9781082395949" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text">Vorwort von Michael Metcalf in: W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery: <i>Numerical Recipes in Fortran&nbsp;90</i>. Cambridge University Press, 1999, ISBN 0-521-57439-0.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://fortranwiki.org/fortran/show/Fortran+2018"><i>Fortran 2018 in Fortran Wiki.</i></a><span class="Abrufdatum"> Abgerufen am 14.&nbsp;Dezember 2018</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Fortran+2018+in+Fortran+Wiki&amp;rft.description=Fortran+2018+in+Fortran+Wiki&amp;rft.identifier=https%3A%2F%2Ffortranwiki.org%2Ffortran%2Fshow%2FFortran%2B2018">&nbsp;</span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.dsm.fordham.edu/~ftnchek/">ftnchek</a> fordham.edu</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://fortran-lang.org/compilers/"><i>Fortran Compilers – Fortran Programming Language.</i></a><span class="Abrufdatum"> Abgerufen am 25.&nbsp;November 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Fortran+Compilers+%E2%80%93+Fortran+Programming+Language&amp;rft.description=Fortran+Compilers+%E2%80%93+Fortran+Programming+Language&amp;rft.identifier=https%3A%2F%2Ffortran-lang.org%2Fcompilers%2F">&nbsp;</span></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><span class="cite">Andy Vaught: <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210424185736/http://www.g95.org/downloads.shtml"><i>The G95 Project.</i></a> Archiviert vom <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fwww.g95.org%2Fdownloads.shtml">Original</a></span> (nicht mehr online verfügbar) am <span style="white-space:nowrap;">24.&nbsp;April 2021</span><span>;</span><span class="Abrufdatum"> abgerufen am 30.&nbsp;Juli 2021</span>.</span> <small class="archiv-bot"><span class="wp_boppel noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"><span title="i"></span></span></span>&nbsp;<b>Info:</b> Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</small><span style="display:none"><a rel="nofollow" class="external text" href="http://IABotmemento.invalid/https://www.g95.org/downloads.shtml">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="https://www.g95.org/downloads.shtml">@2</a></span><span style="display:none">Vorlage:Webachiv/IABot/www.g95.org</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=The+G95+Project&amp;rft.description=The+G95+Project&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20210424185736%2Fhttp%3A%2F%2Fwww.g95.org%2Fdownloads.shtml&amp;rft.creator=Andy+Vaught&amp;rft.source=https://www.g95.org/downloads.shtml">&nbsp;</span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.eclipse.org/photran/"><i>Photran – An Integrated Development Environment and Refactoring Tool for Fortran</i>.</a> eclipse.org</span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://gcc.gnu.org/wiki/Fortran2008Status"><i>Chart of Fortran 2008 Features supported by GNU Fortran.</i></a> In: <i>gcc.gnu.org.</i> Free Software Foundation, Inc., Februar 2019,<span class="Abrufdatum"> abgerufen am 21.&nbsp;August 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Chart+of+Fortran+2008+Features+supported+by+GNU+Fortran&amp;rft.description=Chart+of+Fortran+2008+Features+supported+by+GNU+Fortran&amp;rft.identifier=https%3A%2F%2Fgcc.gnu.org%2Fwiki%2FFortran2008Status&amp;rft.publisher=Free+Software+Foundation%2C+Inc.&amp;rft.date=2019-02">&nbsp;</span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.nag.com/content/nag-fortran-compiler"><i>NAG Fortran Compiler.</i></a> In: <i>www.nag.com.</i> Numerical Algorithms Group Ltd, 2021,<span class="Abrufdatum"> abgerufen am 21.&nbsp;August 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=NAG+Fortran+Compiler&amp;rft.description=NAG+Fortran+Compiler&amp;rft.identifier=https%3A%2F%2Fwww.nag.com%2Fcontent%2Fnag-fortran-compiler&amp;rft.publisher=Numerical+Algorithms+Group+Ltd&amp;rft.date=2021">&nbsp;</span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://support.hpe.com/hpesc/public/docDisplay?docId=a00115296en_us&amp;page=Fortran_Compiler_Introduction.html"><i>Cray Fortran Reference Manual (12.0) (S-3901).</i></a> In: <i>support.hpe.com.</i> Hewlett Packard Enterprise Development LP, 2021,<span class="Abrufdatum"> abgerufen am 21.&nbsp;August 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Cray+Fortran+Reference+Manual+%2812.0%29+%28S-3901%29&amp;rft.description=Cray+Fortran+Reference+Manual+%2812.0%29+%28S-3901%29&amp;rft.identifier=https%3A%2F%2Fsupport.hpe.com%2Fhpesc%2Fpublic%2FdocDisplay%3FdocId%3Da00115296en_us%26page%3DFortran_Compiler_Introduction.html&amp;rft.publisher=Hewlett+Packard+Enterprise+Development+LP&amp;rft.date=2021">&nbsp;</span></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/fortran-compiler.html"><i>Intel® Fortran Compiler.</i></a> In: <i>software.intel.com.</i> Intel Corporation, 2021,<span class="Abrufdatum"> abgerufen am 21.&nbsp;August 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Intel%C2%AE+Fortran+Compiler&amp;rft.description=Intel%C2%AE+Fortran+Compiler&amp;rft.identifier=https%3A%2F%2Fsoftware.intel.com%2Fcontent%2Fwww%2Fus%2Fen%2Fdevelop%2Ftools%2Foneapi%2Fcomponents%2Ffortran-compiler.html&amp;rft.publisher=Intel+Corporation&amp;rft.date=2021">&nbsp;</span></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.netlib.org/blas/"><i>BLAS (Basic Linear Algebra Subprograms).</i></a><span class="Abrufdatum"> Abgerufen am 8.&nbsp;April 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=BLAS+%28Basic+Linear+Algebra+Subprograms%29&amp;rft.description=BLAS+%28Basic+Linear+Algebra+Subprograms%29&amp;rft.identifier=https%3A%2F%2Fwww.netlib.org%2Fblas%2F">&nbsp;</span></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.netlib.org/lapack/"><i>LAPACK — Linear Algebra PACKage.</i></a><span class="Abrufdatum"> Abgerufen am 8.&nbsp;April 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=LAPACK%26thinsp%3B%E2%80%94%26thinsp%3BLinear+Algebra+PACKage&amp;rft.description=LAPACK%26thinsp%3B%E2%80%94%26thinsp%3BLinear+Algebra+PACKage&amp;rft.identifier=https%3A%2F%2Fwww.netlib.org%2Flapack%2F">&nbsp;</span></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.programming-idioms.org/cheatsheet/Fortran"><i>Programming Idioms: Fortran cheat sheet.</i></a><span class="Abrufdatum"> Abgerufen am 8.&nbsp;April 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Programming+Idioms%3A+Fortran+cheat+sheet&amp;rft.description=Programming+Idioms%3A+Fortran+cheat+sheet&amp;rft.identifier=https%3A%2F%2Fwww.programming-idioms.org%2Fcheatsheet%2FFortran">&nbsp;</span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://rosettacode.org/wiki/Category:Fortran"><i>Rosetta Code: Category Fortran.</i></a><span class="Abrufdatum"> Abgerufen am 8.&nbsp;April 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AFortran&amp;rft.title=Rosetta+Code%3A+Category+Fortran&amp;rft.description=Rosetta+Code%3A+Category+Fortran&amp;rft.identifier=https%3A%2F%2Frosettacode.org%2Fwiki%2FCategory%3AFortran">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-10-25" href="https://de.wikipedia.org/wiki/?title=Fortran&amp;oldid=260900060">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>